#version 300 es
precision mediump float;

in vec4 v_color;
in vec2 v_texCoord;

uniform sampler2D u_texture;
uniform float u_time;  // 时间变量
uniform float u_dayTime;//一整天时长: 秒

out vec4 fragColor;

// 定义昼夜颜色配置
#define DAY_COLOR vec3(1.0, 0.98, 0.9)    // 浅黄色（白天）
#define NIGHT_COLOR vec3(0.04, 0.06, 0.12)   // 深蓝色（夜晚）
#define DUSK_COLOR vec3(0.8, 0.4, 0.2)    // 黄昏橙红色

void main() {
    vec4 texColor = texture(u_texture, v_texCoord) * v_color;
    
    if(texColor.a <= 0.0){
    	fragColor = texColor;
    	return;
    }
    
    float adjustedTime = u_time / u_dayTime;
    // 计算时间曲线（平滑过渡）1秒为sin的一圈
    float timeCurve = sin(adjustedTime * 3.14159265 * 2.0) * 0.5 + 0.5;

    // 混合昼夜颜色
    vec3 lightColor = mix(NIGHT_COLOR, DAY_COLOR, smoothstep(0.2, 0.8, timeCurve));
    vec3 finalColor = clamp(texColor.rgb * lightColor.rgb, 0.0, 1.0);

    fragColor = vec4(finalColor, texColor.a);
}
